Various dissimilar data protocols have evolved in the data processing industry, each having various advantages/disadvantages in a particular application or use. For example, BSD provides networking code that uses a framework known as Sockets to implement a communication protocol compatible with Unix.sup.1 operating systems. Numerous communication protocols have been written which are based on the Sockets framework, most notably TCP/IP. A framework is essentially a programming interface, or set of libraries which can be called by an application program, that provides data communication functions independant from the underlying protocol used to transfer the data. As such, various versions of a particular framework could provide support for different underlying protocols. For example, Sockets could support TCP/IP, SNA or ArcNet. Frameworks and protocols are further described in the IBM publication "AIX Version 3.2 Communication Programming Concepts", publication number SC23-2206-03, dated September 1992, and hereby incorporated by reference as background material. FNT .sup.1 Trademark of Unix System Laboratories Inc.
AT&T introduced Streams as a framework to develop a Unix communication protocol. This Streams framework addressed some of the Sockets framework's shortcomings,
Trademark of Unix System Laboratories, Inc. and has become popular in the data processing industry. Problems are encountered in that Sockets and Streams are completely independant frameworks. Thus, if a new communication protocol is desired to be added by an operating system provider, the provider must choose one or the other framework prior to the new protocol development. Providing support for multiple frameworks requires different hardware adapters and different device drivers corresponding to such hardware adapters.
This problem is further amplified when an operating system vendor is trying to provide a common operating system for a plurality of underlying data processing systems having differing processors, busses, etc. In this situation, the operating system provider would have dissimilar code support not only for the differing processors (e.g. an 80486, 68200 or RISC microprocessor), but for the differing frameworks and hardware adapters as well. This leads to larger development resource requirements, and an increase in hardware adapter requirements.